#include "head.h"
#include "cc9d_support.h"
#include "adc.h"
#include "Alarm_lamp.h"
#include "stm32f10x.h"


#define LOCAL_PORT AlarmLamp_PORT

#define greenOn()  GPIO_SetBits(GPIOA, GPIO_Pin_7)
#define greenOff() GPIO_ResetBits(GPIOA, GPIO_Pin_7)
#define yellowOn()    GPIO_SetBits(GPIOA, GPIO_Pin_6)
#define yellowOff()   GPIO_ResetBits(GPIOA, GPIO_Pin_6)
#define redOn()    GPIO_SetBits(GPIOA, GPIO_Pin_5)
#define redOff()   GPIO_ResetBits(GPIOA, GPIO_Pin_5) 

//LED控制函数。占用16端口，在收到对应的命令后，控制LED的亮灭。
#define CMD_RED 1 
#define CMD_YELLOW 2
#define CMD_GREEN 3
//如果收到其他命令，则关闭全部LED。
void AlarmLamp_recvPkg(sCc9dPkg* pkg, uint8 data_len) {
	if (pkg->datas[0] == CMD_RED) {
		redOn();
		yellowOff();
		greenOff();
	} else if (pkg->datas[0] == CMD_YELLOW) {
		redOff();
		yellowOn();
		greenOff();
	} else if (pkg->datas[0] == CMD_GREEN) {
		redOff();
		yellowOff();
		greenOn();
	} else {
		redOff();
		yellowOff();
		greenOff();
	}
}

void AlarmLamp_msTick(void) {
}

void AlarmLamp_init() {
	GPIO_InitTypeDef  GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_6 | GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
}

